#include <bits/stdc++.h>
using namespace std;
#define int long long int
const int max_n =1e5, mod = 1e9 + 7;
int pw(int a, int b) {
if (b == 0)
return 1;
int k = pw(a, b / 2);
if (b % 2 == 0)
return ((k * k) % mod);
return k * k % mod * a % mod;
}
int dp[max_n + 10], m, ans = 1;
int32_t main() {
cin >> m;
for (int i = 2; i <= m; i++){
int p = (m / i) * pw(m, mod - 2) % mod;
dp[i] = p * pw((1 - p + mod) % mod, mod - 2) % mod;
}
for (int i = m; i >= 2; i--)
for (int j = 2 * i; j <= m; j += i)
dp[i] = ((dp[i] - dp[j]) % mod + mod) % mod;
for (int i = 2; i <= m; i++)
ans = (ans + dp[i]) % mod;
cout << ans;
}
688B - Lovely Palindromes | 66B - Petya and Countryside |
1557B - Moamen and k-subarrays | 540A - Combination Lock |
1553C - Penalty | 1474E - What Is It |
1335B - Construct the String | 1004B - Sonya and Exhibition |
1397A - Juggling Letters | 985C - Liebig's Barrels |
115A - Party | 746B - Decoding |
1424G - Years | 1663A - Who Tested |
1073B - Vasya and Books | 195B - After Training |
455A - Boredom | 1099A - Snowball |
1651D - Nearest Excluded Points | 599A - Patrick and Shopping |
237A - Free Cash | 1615B - And It's Non-Zero |
1619E - MEX and Increments | 34B - Sale |
1436A - Reorder | 1363C - Game On Leaves |
1373C - Pluses and Minuses | 1173B - Nauuo and Chess |
318B - Strings of Power | 1625A - Ancient Civilization |